This invention is directed to the field of computer networks and in particular to that of computer servers and network address configuration.
As more servers are being deployed in Internet and intranet environments there is a strong desire to reduce the time it takes to configure a server (also referred to as a network computer) for network access. Servers can be brought online manually by an administrator sitting at the terminal of a server. However, this requires that each server be configured one at a time. In addition, with the increase of the number of Internet Server Providers (ISPs) and Application Service Providers (ASPs), the increase of the number of servers at each ISP/ASP, as well as the number of network interface cards within one server, manual configuration may not be feasible. The space required to house these servers is also an operating cost for the ISP/ASP market and as a result servers are being used that do not have a monitor, a keyboard or a mouse attached. These are referred to being headless servers. Because these headless servers can not be configured locally due to the absence of a local terminal there must be a method to configure these machines remotely. In order for a non-configured machine to be able to participate in a remote configuration mechanism the server must have basic network connectivity which provides the ability to send and receive broadcast packets over the network.
The Dynamic Host Configuration Protocol RFC1541 (DHCP) allows a non-configured machine to become network configured through the use of a specified DHCP server. When a non-configured server is brought online it is able to communicate with the DHCP server via broadcast packets in order that the non-configured server can learn what its network attributes are. These attributes include things such as unique network address, default gateway and what DNS servers to use. DHCP is typically used when network addresses are scarce and they must be shared among multiple servers. A typical scenario is at a corporation with employees that travel frequently. On any given day only a small percentage of the employees will be in the office. If there is a shortage of network addresses, then as each employee comes into the office that employee obtains a network address for that day. When the employee leaves the office the network address is returned to the address pool for someone else to use. DHCP requires the use of a DHCP server in order to keep track of what network addresses have been assigned and for how long they have been assigned.
Like DHCP, the Bootstrap Protocol RFC951 (BOOTP), allows a server to obtain its network address, network mask, default gateway and domain name servers. The Reverse Address Resolution Protocol RFC903 (RARP) is typically used for diskless machines that need to network configure themselves when they are turned on. Diskless machines forget their network address once they are powered off. RARP works by broadcasting a request for its network address. Another machine on the network will reply to the broadcast request by sending a unicast packet to the requester which contains the network address for the requester. A problem with RARP is that the only thing sent to the requester is its network address. Also, RARP requires one or more server hosts to maintain a database of mappings from hardware address to network address and respond to requests from client hosts. RARP also requires that the RARP server maintain large databases of hardware to network address mappings. In the case of an internet protocol (IP) based network, this would correspond to a hardware address (MAC) to IP address map.
All these solutions require that a main server be present in order to handle the requests of new servers being brought online. In the event that this main server fails, it may not be easy to bring a backup server online. This represents a single point of failure. These methods require that a server that has not been network configured contact a server that is responsible for giving out network addresses. This can lead to a bottleneck point in the network.
This places a large burden on the administrator of the network to ensure that each type of address server responds with the correct information. In addition, these methods are triggered by a new server coming online once powered up. There may be cases when one wants a server to be powered on but not to attach itself to the network until a specified later time. With these methods the server decides when the network address assignment process is to take place. Also, these methods are geared towards the temporary assignment of network addresses. For purposes of the present invention, an event occurs simultaneously if that event is triggered by a single common trigger.
It is therefore an aspect of the present invention to provide methods for configuring network addresses on multiple machines, such that each machine obtains its own unique network address and other network parameters. These parameters may include network mask, default gateway and DNS servers, etc.
It is a further aspect of the invention to provide apparatus, a computer product and an article of manufacture comprising a computer usable medium having computer readable program code means embodied therein for causing a computer process to be capable of participating in the network address assignment process.
In an example embodiment of the present invention, multiple unconfigured servers are attached to a network together with one or more configured servers.
A process is started by one of the configured servers which triggers the unconfigured machines to participate in a distributed protocol whereby the unconfigured servers mutually agree on unique network addresses for themselves.